<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body >
<h1>五级地址提取功能</h1>
<p>用户需求：给一个地址，从中提取省市县镇村</p>
<br/>
<div>
    <p>思路一：研究分词算法，将用户输入的地址按省市县镇村分隔。</p>
    <p>个人感觉：实现不了，因为用户输入并不是标准输入，例如标准地址为“江苏省南通市海安县李堡镇陈庄村**组**号”，但是用户
    的输入不可控，他可能输入“江苏南通海安....”，也许输入“江苏海安....”，可能多字，可能少字，可能错别字</p>
</div>
<div>
    <p>我的实现思路：分词、倒排索引、文本相似度匹配</p>
    <p>思路听起来很高大上，其实有现成的工具ElasticSearch（底层是Lucene全文搜索引擎）帮我们完成了几乎所有的工作。</p>
    <p>问题分析抽象：</p>
    <p>其实这个场景很清晰，我们就是要从一个地址中识别出各级别，但是这个地址本身不能够为我们提供这些标准数据。<br/>
        转化一下思路，我们可不可以拿用户输入的，去和标准的五级完整数据（例如江苏省南通市海安县李堡镇陈庄村）匹配？取匹配度最高的那一条，标准的那条对应的五级就很清晰明了了。<br/>
        例如用户输入“江苏省海安县李堡镇陈庄村8组88号”，发现和“江苏省南通市海安县李堡镇陈庄村”匹配度最高，而这条文档又可以提供出省、市、县、镇、村相关信息。
    </p>
    <br/>
    <p>付诸实现：详见代码</p>
</div>
</body>
</html>

